{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "354b0f9e",
   "metadata": {},
   "source": [
    "# 1. 数据导入"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "069499c9",
   "metadata": {},
   "source": [
    "TSDataset 是 PaddleTS 中最主要的类之一，其被设计用来表示绝大多数时序样本数据。通常，时序数据可以分为以下几种：\n",
    "\n",
    "单变量数据，只包含单列的预测目标，同时可以包含单列或者多列协变量\n",
    "\n",
    "多变量数据，包含多列预测目标，同时可以包含单列或者多列协变量\n",
    "\n",
    "TSDataset 需要包含time_index属性，time_index支持 pandas.DatetimeIndex 和 pandas.RangeIndex 两种类型。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "831dd2a9",
   "metadata": {},
   "outputs": [],
   "source": [
    "from paddlets import TSDataset"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c1b6cf3b",
   "metadata": {},
   "source": [
    "PaddleTS内集成了部分公开数据集，便于用户使用；基于内置数据集，我们可以轻松的完成TSDataset的构建。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "f7a198b7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "built-in datasets: ['UNI_WTH', 'ETTh1', 'ETTm1', 'ECL', 'WTH', 'NAB_TEMP', 'psm_train', 'psm_test']\n"
     ]
    }
   ],
   "source": [
    "from paddlets.datasets.repository import get_dataset, dataset_list\n",
    "print(f\"built-in datasets: {dataset_list()}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "3c995569",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'paddlets.datasets.tsdataset.TSDataset'>\n"
     ]
    }
   ],
   "source": [
    "dataset = get_dataset('UNI_WTH')\n",
    "print(type(dataset))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "d0e8c025",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='date'>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "dataset.plot()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7e350f20",
   "metadata": {},
   "source": [
    "在实际应用的场景中，用户可以基于pandas.DataFrame或者CSV文件去构建TSDataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "1c18e2ee",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='time_col'>"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "from paddlets import TSDataset\n",
    "\n",
    "x = np.linspace(-np.pi, np.pi, 200)\n",
    "sinx = np.sin(x) * 4 + np.random.randn(200)\n",
    "\n",
    "df = pd.DataFrame(\n",
    "    {\n",
    "        'time_col': pd.date_range('2022-01-01', periods=200, freq='1h'),\n",
    "        'value': sinx\n",
    "    }\n",
    ")\n",
    "custom_dataset = TSDataset.load_from_dataframe(\n",
    "    df,  #Also can be path to the CSV file\n",
    "    time_col='time_col',\n",
    "    target_cols='value',\n",
    "    freq='1h'\n",
    ")\n",
    "custom_dataset.plot()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5ee02e53",
   "metadata": {},
   "source": [
    "load_from_dataframe函数中\n",
    "1. df: 代表原始pandas.DataFrame数据；\n",
    "2. time_col: 代表时间列，如果不指定，将使用df的index作为默认时间列，支持 pandas.DatetimeIndex 和 pandas.RangeIndex 两种类型，其中str类型的时间列会默认转换成pandas.DatetimeIndex类型；int类型的时间列会默认转换成pandas.RangeInde类型；\n",
    "3. target_cols: 用于表示希望预测列，支持多列的指定，如不指定，除time_col外的所有列都将作为默认的target_cols列；\n",
    "4. freq: 代表时间样本的频率，如'1h'代表一个小时、'1min'代表一分钟、如果不指定，将会自动推测（如果数据有缺失，将会推测失败，因此建议保留该参数的传递）\n",
    "\n",
    "当然load_from_dataframe还支持很多其他的特性，如缺失值填充、尾部Nan值自动去除等，具体使用方法可以参考TSDataset的API文档"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d37a5f1c",
   "metadata": {},
   "source": [
    "# 2. 数据查看以及分析"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "04ef024d",
   "metadata": {},
   "source": [
    "通过调用 TSDataset.summary 方法即可实现对数据统计信息的查看。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "c83ac005",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>WetBulbCelsius</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>missing</th>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>35064.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>1.026081</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>6.898354</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>-26.400000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>-3.800000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>0.600000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>6.600000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>16.300000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         WetBulbCelsius\n",
       "missing        0.000000\n",
       "count      35064.000000\n",
       "mean           1.026081\n",
       "std            6.898354\n",
       "min          -26.400000\n",
       "25%           -3.800000\n",
       "50%            0.600000\n",
       "75%            6.600000\n",
       "max           16.300000"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dataset.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0251a6b9",
   "metadata": {},
   "source": [
    "基于上述的信息，用户可以对数据的基本信息有大致的了解，其中很多信息可以帮助我们更好的理解数据，例如上述中 missing 变量用于表示数据的缺失值比例，我们多数深度模型要求数据不能有缺失值，因此如果不为零，数据在入模前需要进行缺失值填充以及处理。\n",
    "我们也可以使用一些PaddleTS中的高级的分析组件对数据进行进一步的分析。例如我们可以使用 FFT 算子进行数据频域属性分析。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "a8ae9b2b",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[2022-11-02 14:47:58,021] [paddlets.analysis.frequency_domain] [WARNING] It's suggested to assign a positive number to the fs parameter.\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<module 'matplotlib.pyplot' from '/home/work/anaconda3/envs/py37/lib/python3.7/site-packages/matplotlib/pyplot.py'>"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#FFT\n",
    "from paddlets.analysis import FFT\n",
    "fft = FFT()\n",
    "res = fft(dataset, columns='WetBulbCelsius')\n",
    "fft.plot()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5505cbb2",
   "metadata": {},
   "source": [
    "# 3. 模型训练及预测"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6f3e4d8d",
   "metadata": {},
   "source": [
    "完成TSDataset的构建后，可以进行后续的模型训练以及预测工作; PaddleTS目前支持时序预测、时序异常检测以及时序表征等三种模型训练以及应用\n",
    "\n",
    "这里基于时序预测模型以及任务进行示例说明，下面提供了一个如何基于时序数据去构建深度神经网络模型的例子，包括模型的训练以及预测。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d924041f",
   "metadata": {},
   "source": [
    "## 3.1. 构建训练、验证以及测试数据集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "60eaa6ae",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='date'>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "train_dataset, val_test_dataset = dataset.split(0.7)\n",
    "val_dataset, test_dataset = val_test_dataset.split(0.5)\n",
    "train_dataset.plot(add_data=[val_dataset,test_dataset], labels=['Val', 'Test'])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5de39702",
   "metadata": {},
   "source": [
    "## 3.2. 模型训练"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7e840a8a",
   "metadata": {},
   "source": [
    "我们将基于内置的MLPRegressor模型作为示例，用于展示如何进行模型的训练及预测。\n",
    "初始化MLPRegressor模型，其中包含两个必传的参数：\n",
    "1. in_chunk_len: 输入时序窗口的大小，代表每次训练以及预测时候输入到模型中的前序的时间步长。\n",
    "2. out_chunk_len: 输出时序窗口的大小，代表每次训练以及预测时候输出的后续的时间步长。\n",
    "\n",
    "同时也有很多其他的可选参数用于控制 MLPRegressor 模型的初始化，如 max_epochs , optimizer_params 等。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "2e483cb9",
   "metadata": {},
   "outputs": [],
   "source": [
    "from paddlets.models.forecasting import MLPRegressor\n",
    "mlp = MLPRegressor(\n",
    "    in_chunk_len = 7 * 24,\n",
    "    out_chunk_len = 24,\n",
    "    max_epochs=100\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d63f9137",
   "metadata": {},
   "source": [
    "现在，我们可以使用 train_dataset 和 val_dataset 对初始化好的模型进行训练，其中 val_dataset 是可选的。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "401ca202",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[2022-11-02 14:57:40,804] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 000| loss: 6.498729| val_0_mae: 2.108200| 0:00:02s\n",
      "[2022-11-02 14:57:43,024] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 001| loss: 4.636641| val_0_mae: 2.231978| 0:00:04s\n",
      "[2022-11-02 14:57:45,173] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 002| loss: 4.367625| val_0_mae: 1.925581| 0:00:06s\n",
      "[2022-11-02 14:57:47,370] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 003| loss: 4.139342| val_0_mae: 1.915246| 0:00:08s\n",
      "[2022-11-02 14:57:49,596] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 004| loss: 4.037877| val_0_mae: 1.943281| 0:00:11s\n",
      "[2022-11-02 14:57:51,738] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 005| loss: 3.967969| val_0_mae: 1.928276| 0:00:13s\n",
      "[2022-11-02 14:57:53,994] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 006| loss: 3.864211| val_0_mae: 1.946018| 0:00:15s\n",
      "[2022-11-02 14:57:56,179] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 007| loss: 3.803339| val_0_mae: 2.002523| 0:00:17s\n",
      "[2022-11-02 14:57:58,303] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 008| loss: 3.766645| val_0_mae: 1.906944| 0:00:19s\n",
      "[2022-11-02 14:58:00,370] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 009| loss: 3.715353| val_0_mae: 1.902408| 0:00:21s\n",
      "[2022-11-02 14:58:02,484] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 010| loss: 3.670603| val_0_mae: 1.868724| 0:00:23s\n",
      "[2022-11-02 14:58:04,637] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 011| loss: 3.665634| val_0_mae: 2.028391| 0:00:26s\n",
      "[2022-11-02 14:58:06,906] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 012| loss: 3.616294| val_0_mae: 2.074466| 0:00:28s\n",
      "[2022-11-02 14:58:08,952] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 013| loss: 3.595640| val_0_mae: 1.955740| 0:00:30s\n",
      "[2022-11-02 14:58:11,134] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 014| loss: 3.570629| val_0_mae: 1.869862| 0:00:32s\n",
      "[2022-11-02 14:58:13,371] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 015| loss: 3.535526| val_0_mae: 1.895113| 0:00:34s\n",
      "[2022-11-02 14:58:15,690] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 016| loss: 3.503092| val_0_mae: 1.945325| 0:00:37s\n",
      "[2022-11-02 14:58:17,856] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 017| loss: 3.537155| val_0_mae: 1.898561| 0:00:39s\n",
      "[2022-11-02 14:58:19,954] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 018| loss: 3.478228| val_0_mae: 1.888772| 0:00:41s\n",
      "[2022-11-02 14:58:22,241] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 019| loss: 3.482295| val_0_mae: 1.935730| 0:00:43s\n",
      "[2022-11-02 14:58:24,324] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 020| loss: 3.505037| val_0_mae: 1.900246| 0:00:45s\n",
      "[2022-11-02 14:58:24,326] [paddlets.models.common.callbacks.callbacks] [INFO] \n",
      "Early stopping occurred at epoch 20 with best_epoch = 10 and best_val_0_mae = 1.868724\n",
      "[2022-11-02 14:58:24,327] [paddlets.models.common.callbacks.callbacks] [INFO] Best weights from best epoch are automatically used!\n"
     ]
    }
   ],
   "source": [
    "mlp.fit(train_dataset, val_dataset)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "47db9f33",
   "metadata": {},
   "source": [
    "## 3.3. 模型预测"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "99ea4a0a",
   "metadata": {},
   "source": [
    "接下来，我们用已经训练好的模型进行预测，输出的预测结果类型是TSDataset, 同时其长度等于 out_chunk_len 。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "33e13185",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "subset_test_pred_dataset = mlp.predict(val_dataset)\n",
    "subset_test_pred_dataset.plot()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d4098256",
   "metadata": {},
   "source": [
    "我们截取测试集中对应的真实数据，和我们的预测结果进行对比，结果如下："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "e645c2be",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='date'>"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "subset_test_dataset, _ = test_dataset.split(len(subset_test_pred_dataset.target))\n",
    "subset_test_dataset.plot(add_data=subset_test_pred_dataset, labels=['Pred'])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "daf71d2e",
   "metadata": {},
   "source": [
    "如果我们想要预测的长度大于模型初始化时候指定的 out_chunk_len 长度，我们可以通过调用 recursive_predict 接口来实现。其支持指定想要输出的预测长度；如上述的 UNI_WTH 数据集，我们想要预测未来96个小时的 WetBulbCelsuis , 我们可以通过调用 recursive_predict 通过如下方法实现："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "106e30f0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='date'>"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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9PRs9FOesdgALw+3xUYP+SkH2FBPHcCxvnp+2JFKmD6Drk46UnIr2ZVSwg1hNmzdvKlNxqq0T87AyyPs6OqUw8aNG9vkOV1cXBoMANrKhWMoKiqioqLi3O3XX389CQkJREREoGkanTt3ZuHChUyaNIlVq1bRs2dP/P39GTx4MMXFxXX+TIMGDWLFihWEhYWRn59P3759SU5OZsCAAeTn59f7HNVLfn379uWmm26if//+bN68mX79+qFpGp06deLDDz8kPz+fKVOm8PXXX9OrVy8GDRpESEgIBQUF58aTn59PUVERAwcO5N577yU5OZkxY8YwadIk8vPzeffdd3nuuecIDg7G3t4eDw8PXnnlFfz9/XnuueeYNGkSBoMBa2tr3n77bdzd3c8tG+7du5d//etf6HQ6rKysePfdd8nPz6eyspLCwkLy8/N58cUXmT59Op07d2bAgAHnbp87dy5JSUlomsbYsWMJDg6+6N+wpKSkzV5vFeVSIxrbHi+EGA68pGna1KrvnwHQNK3e+eWwsDAtPj6+vrvNIquglPFvbWBIkDtfzRnMQz/uZcPhDLY9M6Ft80sUpQni4uLo1auXuYehtAPqWlGU1hNCRGmaNujC25uyu2030EMIESSEsAFuANrdNovOTrY8MCGEtYczWLT7GCsOnuTGod1UgKQoiqIoSp0aDZI0TasAHgRWA3HAz5qmHTL1wExhzohA/N3tefrXg4iq7xVFURRFUerSpDpJmqat0DQtVNO07pqm/cfUgzIVO2s9T0/rhabBzH4+dHW1N/eQFEVRFEWxUB2z6VQDpvf15pWrwpnUy6vxgxXFjDRNU6UplAY1llOqKErrtJu2JMYihODWYQH4uKhZJMVy2dnZkZ2drd4ElXppmkZ2djZ2dnbmHoqidFiX3EySorQHfn5+pKWlkZmZae6hKBbMzs4OPz8/cw9DUTosFSQpigWytrY+VwdIURRFMY9LbrlNURRFURSlKVSQpCiKoiiKUgcVJCmKoiiKotSh0bYkLTqpEPlAa/uSuAC5RhiOculQ14zSXOqaUZpLXTMdU5imac4X3miqxO34unqgNIcQYp6maXcba0BKx6euGaW51DWjNJe6ZjomIcSeum635OW2P809AKXdUdeM0lzqmlGaS10zlxBTLbftae1MkqIoiqIoSluoL24x1UzSPBOdV1EURVEU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\n",
      "text/plain": [
       "<Figure size 720x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "subset_test_pred_dataset = mlp.recursive_predict(val_dataset, 24 * 4)\n",
    "subset_test_dataset, _ = test_dataset.split(len(subset_test_pred_dataset.target))\n",
    "subset_test_dataset.plot(add_data=subset_test_pred_dataset, labels=['Pred'])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7e13654a",
   "metadata": {},
   "source": [
    "# 4. 评估和回测"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e36c19c1",
   "metadata": {},
   "source": [
    "现在，我们有了预测数据和真实数据，可以计算相应的metrics指标"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "e8e7283a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'WetBulbCelsius': 0.7928851215789715}"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from paddlets.metrics import MAE\n",
    "mae = MAE()\n",
    "mae(subset_test_dataset, subset_test_pred_dataset)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "87249336",
   "metadata": {},
   "source": [
    "上面，我们只计算了测试集中部分数据的metrics指标，我们可以通过 backtest 实现对整个测试集的metrics指标计算。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "6a3c33ce",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Backtest Progress: 100%|██████████| 220/220 [00:04<00:00, 53.47it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "mae: {'WetBulbCelsius': 1.5177571760284516}\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "from paddlets.utils import backtest\n",
    "metrics_score = backtest(\n",
    "    data=val_test_dataset,\n",
    "    model=mlp,\n",
    "    start=0.5,\n",
    "    predict_window=24,\n",
    "    stride=24,\n",
    "    metric=mae\n",
    ")\n",
    "print(f\"mae: {metrics_score}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "62b1d31a",
   "metadata": {},
   "source": [
    "# 5. 协变量"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "506c4b79",
   "metadata": {},
   "source": [
    "PaddleTS 同样支持协变量数据的构建以及入模训练，用于提供除target外的额外信息，帮助我们提高时序模型效果。\n",
    "时序数据中的协变量可以分为以下三种：\n",
    "1. known_covariate(已知协变量) ，指可在预测未来时间已知的变量，例如天气预报\n",
    "2. observed_covariate(观测协变量) ，指只能在历史中观察到的变量数据，例如测量的温度\n",
    "3. static_covariate(静态协变量) ，指整个时间范围内保持不变的变量，在多数序组合预测中会使用"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6beabf67",
   "metadata": {},
   "source": [
    "## 5.1 自动构建日期相关协变量"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ef3a46f7",
   "metadata": {},
   "source": [
    "我们可以使用 paddlets.transform 中的 TimeFeatureGenerator 去自动生成日期与时间相关的协变量。如是否节假日，当前是每年的第几周等信息，因为这些信息在预测未来数据的时候也是已知的，因此其属于 known_covariate(已知协变量)。 在以下示例中，我们会生成三个时间相关的协变量，分别代表 一年中的第几天 、一周中的第几天、 是否是工作日 。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "797f42d8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                     WetBulbCelsius  dayofyear  weekofyear  is_workday\n",
      "date                                                                  \n",
      "2010-01-01 00:00:00           -10.3          1          53         0.0\n",
      "2010-01-01 01:00:00           -10.3          1          53         0.0\n",
      "2010-01-01 02:00:00           -10.3          1          53         0.0\n",
      "2010-01-01 03:00:00           -10.3          1          53         0.0\n",
      "2010-01-01 04:00:00           -10.0          1          53         0.0\n",
      "...                             ...        ...         ...         ...\n",
      "2013-12-31 19:00:00             0.0        365           1         1.0\n",
      "2013-12-31 20:00:00             0.0        365           1         1.0\n",
      "2013-12-31 21:00:00             0.0        365           1         1.0\n",
      "2013-12-31 22:00:00             0.0        365           1         1.0\n",
      "2013-12-31 23:00:00            -1.5        365           1         1.0\n",
      "\n",
      "[35064 rows x 4 columns]\n",
      "                     dayofyear  weekofyear  is_workday\n",
      "date                                                  \n",
      "2010-01-01 00:00:00          1          53         0.0\n",
      "2010-01-01 01:00:00          1          53         0.0\n",
      "2010-01-01 02:00:00          1          53         0.0\n",
      "2010-01-01 03:00:00          1          53         0.0\n",
      "2010-01-01 04:00:00          1          53         0.0\n",
      "...                        ...         ...         ...\n",
      "2013-12-31 19:00:00        365           1         1.0\n",
      "2013-12-31 20:00:00        365           1         1.0\n",
      "2013-12-31 21:00:00        365           1         1.0\n",
      "2013-12-31 22:00:00        365           1         1.0\n",
      "2013-12-31 23:00:00        365           1         1.0\n",
      "\n",
      "[35064 rows x 3 columns]\n"
     ]
    }
   ],
   "source": [
    "from paddlets.transform import TimeFeatureGenerator\n",
    "time_feature_generator = TimeFeatureGenerator(feature_cols=['dayofyear', 'weekofyear', 'is_workday'])\n",
    "dataset_gen_target_cov = time_feature_generator.fit_transform(dataset)\n",
    "print(dataset_gen_target_cov)\n",
    "print(dataset_gen_target_cov.known_cov)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "20f2fbde",
   "metadata": {},
   "source": [
    "## 5.2. 自定义协变量"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8a6e5abd",
   "metadata": {},
   "source": [
    "很多实际场景中，我们原始数据中即包含了需要使用的协变量，我们可以基于pandas.DataFrame或者CSV文件去构建一个只包含协变量的TSDataset "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "e8589953",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                      cov1\n",
      "time_col                  \n",
      "2010-01-01 00:00:00      0\n",
      "2010-01-01 01:00:00      1\n",
      "2010-01-01 02:00:00      2\n",
      "2010-01-01 03:00:00      3\n",
      "2010-01-01 04:00:00      4\n",
      "...                    ...\n",
      "2013-12-31 19:00:00  35059\n",
      "2013-12-31 20:00:00  35060\n",
      "2013-12-31 21:00:00  35061\n",
      "2013-12-31 22:00:00  35062\n",
      "2013-12-31 23:00:00  35063\n",
      "\n",
      "[35064 rows x 1 columns]\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "from paddlets import TSDataset\n",
    "df = pd.DataFrame(\n",
    "    {\n",
    "        'time_col': pd.date_range(\n",
    "            dataset.target.time_index[0],\n",
    "            periods=len(dataset.target),\n",
    "            freq=dataset.freq\n",
    "        ),\n",
    "        'cov1': [i for i in range(len(dataset.target))]\n",
    "    }\n",
    ")\n",
    "dataset_cus_cov = TSDataset.load_from_dataframe(\n",
    "    df,\n",
    "    time_col='time_col',\n",
    "    known_cov_cols='cov1',\n",
    "    freq=dataset.freq\n",
    ")\n",
    "print(dataset_cus_cov)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "955e5dd8",
   "metadata": {},
   "source": [
    "接下来，我们可以将新构建只包含协变量的TSDataset和原有只包含target信息的TSDataset进行聚合。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "6accf05e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                     WetBulbCelsius   cov1\n",
      "date                                      \n",
      "2010-01-01 00:00:00           -10.3      0\n",
      "2010-01-01 01:00:00           -10.3      1\n",
      "2010-01-01 02:00:00           -10.3      2\n",
      "2010-01-01 03:00:00           -10.3      3\n",
      "2010-01-01 04:00:00           -10.0      4\n",
      "...                             ...    ...\n",
      "2013-12-31 19:00:00             0.0  35059\n",
      "2013-12-31 20:00:00             0.0  35060\n",
      "2013-12-31 21:00:00             0.0  35061\n",
      "2013-12-31 22:00:00             0.0  35062\n",
      "2013-12-31 23:00:00            -1.5  35063\n",
      "\n",
      "[35064 rows x 2 columns]\n"
     ]
    }
   ],
   "source": [
    "dataset_cus_target_cov = TSDataset.concat([dataset, dataset_cus_cov])\n",
    "print(dataset_cus_target_cov)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9c9c360f",
   "metadata": {},
   "source": [
    "当然，很多中情况下，target信息以及协变量信息是存储在一起的，因此我们也可以通过load_from_dataframe函数将target以及协变量信息基于同一个csv文件或者DataFrame一起导入并构建成一个TSDataset"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c4bfc79c",
   "metadata": {},
   "source": [
    "# 6. 基于包含协变量数据的模型训练"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "aedef847",
   "metadata": {},
   "source": [
    "基于前面构建好的包含协变量的数据，接下来，我们去训练一个时序预测场景下的RNNBlockRegressor模型作为一个例子。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "9bbb3347",
   "metadata": {},
   "outputs": [],
   "source": [
    "from paddlets.models.forecasting import RNNBlockRegressor\n",
    "rnn_reg = RNNBlockRegressor(\n",
    "    in_chunk_len = 7 * 24,\n",
    "    out_chunk_len = 24,\n",
    "    skip_chunk_len = 0,\n",
    "    sampling_stride = 24,\n",
    "    max_epochs = 100\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c917702c",
   "metadata": {},
   "source": [
    "构建训练、验证以及测试数据集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "35e4e533",
   "metadata": {},
   "outputs": [],
   "source": [
    "train_dataset, val_test_dataset = dataset_gen_target_cov.split(0.8)\n",
    "val_dataset, test_dataset = val_test_dataset.split(0.5)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "955f698c",
   "metadata": {},
   "source": [
    "通过 paddlets.transform 的 StandardScaler 对数据进行归一化。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "475ef886",
   "metadata": {},
   "outputs": [],
   "source": [
    "from paddlets.transform import StandardScaler\n",
    "scaler = StandardScaler()\n",
    "scaler.fit(train_dataset)\n",
    "train_dataset_scaled = scaler.transform(train_dataset)\n",
    "val_test_dataset_scaled = scaler.transform(val_test_dataset)\n",
    "val_dataset_scaled = scaler.transform(val_dataset)\n",
    "test_dataset_scaled = scaler.transform(test_dataset)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3c5f86e4",
   "metadata": {},
   "source": [
    "现在我们可以训练模型并对模型效果进行评估。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "e0ec09bc",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[2022-11-02 15:08:30,946] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 000| loss: 0.970474| val_0_mae: 0.773957| 0:00:09s\n",
      "[2022-11-02 15:08:40,010] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 001| loss: 0.913050| val_0_mae: 0.744028| 0:00:18s\n",
      "[2022-11-02 15:08:49,042] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 002| loss: 0.855154| val_0_mae: 0.711538| 0:00:27s\n",
      "[2022-11-02 15:08:57,917] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 003| loss: 0.790377| val_0_mae: 0.667910| 0:00:36s\n",
      "[2022-11-02 15:09:02,302] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 004| loss: 0.708783| val_0_mae: 0.602184| 0:00:40s\n",
      "[2022-11-02 15:09:03,577] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 005| loss: 0.600264| val_0_mae: 0.511285| 0:00:41s\n",
      "[2022-11-02 15:09:04,625] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 006| loss: 0.469953| val_0_mae: 0.426064| 0:00:42s\n",
      "[2022-11-02 15:09:05,671] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 007| loss: 0.333381| val_0_mae: 0.386895| 0:00:43s\n",
      "[2022-11-02 15:09:06,742] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 008| loss: 0.234947| val_0_mae: 0.360382| 0:00:44s\n",
      "[2022-11-02 15:09:07,901] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 009| loss: 0.199958| val_0_mae: 0.338217| 0:00:46s\n",
      "[2022-11-02 15:09:09,152] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 010| loss: 0.180371| val_0_mae: 0.322962| 0:00:47s\n",
      "[2022-11-02 15:09:10,414] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 011| loss: 0.165522| val_0_mae: 0.309582| 0:00:48s\n",
      "[2022-11-02 15:09:11,711] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 012| loss: 0.155571| val_0_mae: 0.298861| 0:00:49s\n",
      "[2022-11-02 15:09:13,072] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 013| loss: 0.147660| val_0_mae: 0.294831| 0:00:51s\n",
      "[2022-11-02 15:09:14,406] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 014| loss: 0.141263| val_0_mae: 0.289260| 0:00:52s\n",
      "[2022-11-02 15:09:15,673] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 015| loss: 0.136440| val_0_mae: 0.285268| 0:00:53s\n",
      "[2022-11-02 15:09:16,909] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 016| loss: 0.132308| val_0_mae: 0.287151| 0:00:55s\n",
      "[2022-11-02 15:09:18,066] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 017| loss: 0.129128| val_0_mae: 0.285682| 0:00:56s\n",
      "[2022-11-02 15:09:19,148] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 018| loss: 0.125753| val_0_mae: 0.277117| 0:00:57s\n",
      "[2022-11-02 15:09:20,226] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 019| loss: 0.123550| val_0_mae: 0.275263| 0:00:58s\n",
      "[2022-11-02 15:09:21,258] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 020| loss: 0.122708| val_0_mae: 0.284184| 0:00:59s\n",
      "[2022-11-02 15:09:22,309] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 021| loss: 0.120106| val_0_mae: 0.276114| 0:01:00s\n",
      "[2022-11-02 15:09:23,331] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 022| loss: 0.119256| val_0_mae: 0.278183| 0:01:01s\n",
      "[2022-11-02 15:09:24,369] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 023| loss: 0.117927| val_0_mae: 0.277279| 0:01:02s\n",
      "[2022-11-02 15:09:24,371] [paddlets.models.common.callbacks.callbacks] [INFO] \n",
      "Early stopping occurred at epoch 23 with best_epoch = 19 and best_val_0_mae = 0.275263\n",
      "[2022-11-02 15:09:24,372] [paddlets.models.common.callbacks.callbacks] [INFO] Best weights from best epoch are automatically used!\n"
     ]
    }
   ],
   "source": [
    "rnn_reg.fit(train_dataset_scaled, val_dataset_scaled)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "d0e607d3",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Backtest Progress:  99%|█████████▉| 146/147 [00:04<00:00, 35.18it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "mae: {'WetBulbCelsius': 0.301671578348008}\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "from paddlets.utils import backtest\n",
    "metrics_score = backtest(\n",
    "    data=val_test_dataset_scaled,\n",
    "    model=rnn_reg,\n",
    "    start=0.5,\n",
    "    predict_window=24,\n",
    "    stride=24,\n",
    "    metric=mae\n",
    ")\n",
    "print(f\"mae: {metrics_score}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e5cd0058",
   "metadata": {},
   "source": [
    "# 7. Pipeline"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "61a8daf1",
   "metadata": {},
   "source": [
    "PaddleTS支持pipeline的构建以及串联，我们可以通过Pipeline的方法，将上述提到的数据处理流程整合到一起，提供一个端到端的数据建模解决方案："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "bbdb6541",
   "metadata": {},
   "outputs": [],
   "source": [
    "from paddlets.pipeline import Pipeline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "1021e1a4",
   "metadata": {},
   "outputs": [],
   "source": [
    "train_dataset, val_test_dataset = dataset.split(0.8)\n",
    "val_dataset, test_dataset = val_test_dataset.split(0.5)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "058e1ae8",
   "metadata": {},
   "source": [
    "我们通过添加时间相关的特征生成模块、数据归一化模块以及模型训练模块去初始化一个Pipeline对象。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "992bb195",
   "metadata": {},
   "outputs": [],
   "source": [
    "pipe = Pipeline([\n",
    "    (TimeFeatureGenerator, {\"feature_cols\": ['dayofyear', 'weekofyear', 'is_workday'], \"extend_points\": 24}),\n",
    "    (StandardScaler, {}),\n",
    "    (RNNBlockRegressor, {\n",
    "        \"in_chunk_len\": 7 * 24,\n",
    "        \"out_chunk_len\": 24,\n",
    "        \"skip_chunk_len\": 0,\n",
    "        \"sampling_stride\": 24,\n",
    "        \"max_epochs\": 100\n",
    "    })\n",
    "])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5f61bfd4",
   "metadata": {},
   "source": [
    "接下来，我们可以对Pipeline整体进行训练以及效果评估，Pipeline会自动按序调用内部的模块进行数据的处理以及模型训练。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "2d903496",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[2022-11-02 15:10:40,075] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 000| loss: 0.970560| val_0_mae: 0.751753| 0:00:08s\n",
      "[2022-11-02 15:10:49,098] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 001| loss: 0.912606| val_0_mae: 0.721962| 0:00:18s\n",
      "[2022-11-02 15:10:58,138] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 002| loss: 0.854178| val_0_mae: 0.687151| 0:00:27s\n",
      "[2022-11-02 15:11:07,041] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 003| loss: 0.787685| val_0_mae: 0.644228| 0:00:35s\n",
      "[2022-11-02 15:11:11,588] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 004| loss: 0.705626| val_0_mae: 0.585041| 0:00:40s\n",
      "[2022-11-02 15:11:12,938] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 005| loss: 0.602265| val_0_mae: 0.504624| 0:00:41s\n",
      "[2022-11-02 15:11:13,974] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 006| loss: 0.468437| val_0_mae: 0.419753| 0:00:42s\n",
      "[2022-11-02 15:11:15,034] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 007| loss: 0.333519| val_0_mae: 0.372054| 0:00:43s\n",
      "[2022-11-02 15:11:16,149] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 008| loss: 0.231843| val_0_mae: 0.347269| 0:00:45s\n",
      "[2022-11-02 15:11:17,319] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 009| loss: 0.198882| val_0_mae: 0.334019| 0:00:46s\n",
      "[2022-11-02 15:11:18,515] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 010| loss: 0.180201| val_0_mae: 0.323579| 0:00:47s\n",
      "[2022-11-02 15:11:19,748] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 011| loss: 0.165127| val_0_mae: 0.317794| 0:00:48s\n",
      "[2022-11-02 15:11:21,035] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 012| loss: 0.154397| val_0_mae: 0.313220| 0:00:49s\n",
      "[2022-11-02 15:11:22,385] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 013| loss: 0.148738| val_0_mae: 0.311855| 0:00:51s\n",
      "[2022-11-02 15:11:23,703] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 014| loss: 0.141662| val_0_mae: 0.312339| 0:00:52s\n",
      "[2022-11-02 15:11:24,918] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 015| loss: 0.137174| val_0_mae: 0.311207| 0:00:53s\n",
      "[2022-11-02 15:11:26,118] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 016| loss: 0.133323| val_0_mae: 0.312585| 0:00:55s\n",
      "[2022-11-02 15:11:27,282] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 017| loss: 0.129432| val_0_mae: 0.312632| 0:00:56s\n",
      "[2022-11-02 15:11:28,347] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 018| loss: 0.127206| val_0_mae: 0.316155| 0:00:57s\n",
      "[2022-11-02 15:11:29,431] [paddlets.models.common.callbacks.callbacks] [INFO] epoch 019| loss: 0.124083| val_0_mae: 0.321380| 0:00:58s\n",
      "[2022-11-02 15:11:29,433] [paddlets.models.common.callbacks.callbacks] [INFO] \n",
      "Early stopping occurred at epoch 19 with best_epoch = 15 and best_val_0_mae = 0.311207\n",
      "[2022-11-02 15:11:29,434] [paddlets.models.common.callbacks.callbacks] [INFO] Best weights from best epoch are automatically used!\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<paddlets.pipeline.pipeline.Pipeline at 0x7fa19d0e2d90>"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pipe.fit(train_dataset, val_dataset)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "4a21f3a2",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Backtest Progress: 100%|██████████| 147/147 [00:43<00:00,  3.41it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "mae: {'WetBulbCelsius': 2.875698359433589}\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "from paddlets.utils import backtest\n",
    "metrics_score = backtest(\n",
    "    data=val_test_dataset,\n",
    "    model=pipe,\n",
    "    start=0.5,\n",
    "    predict_window=24,\n",
    "    stride=24,\n",
    "    metric=mae\n",
    ")\n",
    "print(f\"mae: {metrics_score}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b48d42d1",
   "metadata": {},
   "source": [
    "# 8. AutoTS"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c5ab2760",
   "metadata": {},
   "source": [
    "AutoTS是用于支持PaddleTS的自动机器学习能力组件。\n",
    "\n",
    "AutoTS 可以支持 PaddleTS 模型和 pipeline 的自动超参数选择，减少人工介入成本，降低专业门槛。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "54222f57",
   "metadata": {},
   "outputs": [],
   "source": [
    "from paddlets.automl.autots import AutoTS"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "de4daf85",
   "metadata": {},
   "source": [
    "下面，我们利用 MLPRegressor 初始化了一个 AutoTS 模型，其中它的 in_chunk_len 是96，out_chunk_len 是2。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "987a13a2",
   "metadata": {},
   "outputs": [],
   "source": [
    "autots_model = AutoTS(MLPRegressor, 96, 2)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ea6b1e6e",
   "metadata": {},
   "source": [
    "接下来我们可以像应用一个普通的 PaddleTS 模型一样训练这个模型，并将其用于预测。\n",
    "\n",
    "AutoTS 为 PaddleTS 模型内置了一套推荐的默认检索空间，所以这个 MLPRegressor 在默认的检索空间下面进行超参优化，并利用所发现的最优参数拟合这个 MLPRegressor。\n",
    "\n",
    "(温馨提示，AutoTS训练涉及到自动寻参以及多轮训练，fit过程会比较慢，请耐心等待)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "db3fa901",
   "metadata": {},
   "outputs": [],
   "source": [
    "autots_model.fit(train_dataset)\n",
    "predicted_tsdataset = autots_model.predict(train_dataset)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c1046011",
   "metadata": {},
   "source": [
    "AutoTS 也允许我们获取超参优化过程中所找到的最优的参数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "4830eefd",
   "metadata": {},
   "outputs": [],
   "source": [
    "best_param = autots_model.best_param"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
